#include <opencv2/opencv.hpp>

using namespace cv;

int main() {
    // 打开摄像头
    VideoCapture cap(0);

    // 检查是否成功打开摄像头
    if (!cap.isOpened()) {
        std::cerr << "Failed to open camera!" << std::endl;
        return -1;
    }

    // 创建一个窗口
    namedWindow("Camera", WINDOW_NORMAL);

    while (true) {
        // 读取一帧图像
        Mat frame;
        cap >> frame;

        // 显示图像
        imshow("Camera", frame);

        // 等待用户按下P键
        int key = waitKey(1);
        if (key == 'p' || key == 'P') {
            // 将当前图像存储在本地
            imwrite("camera.jpg", frame);
        } else if (key == 27) {
            // 用户按下ESC键，退出程序
            break;
        }
    }

    // 关闭摄像头并销毁窗口
    cap.release();
    destroyAllWindows();

    return 0;
}
